Structured generic programming in Eden
نویسنده
چکیده
Parallelism has always been a hidden main source of processor power. As a result of the limited amount of implicitly exploitable small-scale parallelism (for example on the instruction-level) and ever-growing needs for more computational power, parallel techniques break their way from a minor matter to a major feature in both hardware and software. Due to their complexity, such parallel systems are getting increasingly difficult to control with conventional programming languages. Therefore, more abstract high-level approaches move into focus. Eden is a representative of these approaches which integrates constructs for remote evaluation into the standard functional language Haskell. It strikes a balance between full and no parallelism control and delivers good speedups while providing a high-level style of programming. In this thesis we equip Eden with three language features to raise the abstraction level even more: • Meta-programming, which means that programs manipulate other programs, will be used to define static preprocessing steps coded in Haskell for enhancing Eden programs. This supports portability of the Eden compiler, as some transformations can be pulled out of the foreign Haskell implementation. • Generic programming raises parametric to structural polymorphism and allows to write functions which are valid for all data structures. We will present a reduced, structure-oriented approach to generic programming tailored for Eden’s needs. Using this approach, very general parallel schemes are defined. • Demand control is a basic requirement if a lazy functional language is faced with parallelism. The contradictory aims of postponing evaluations and simultaneity of evaluations enforces demand control in favour of parallelism. We present a set of means to do that. In functional programs, evaluation progress is determined by a mix of control structures and data dependencies. Accordingly, parallel functional programs can roughly be classified into data-oriented and control-oriented ones. Firstly, we will present generic methods for partitioning data structures as well as generic versions of the parallel map function. Secondly, we will show methods to manage the omnipresent streams as well as parallel schemes for dealing with irregular task sizes and long communication distances. To conclude, we will summarise all methods shown in a program developing guide for Eden.
منابع مشابه
Explicit and implicit parallel functional programming: concepts and implementation
This thesis investigates the relation between the two conflicting goals of explicitness and abstraction, for the implementation of parallel functional languages and skeletons. Necessary and useful coordination features for implementing parallel coordination in a functional implementation language will be identified, leading to the proposal of a Haskell extension for explicit low-level coordinat...
متن کاملImplementing Eden - or: Dreams Become Reality
The parallel functional programming language Eden was specially designed to be implemented in a distributed setting. In a previous paper 3] we presented an operational speciication of DREAM, the distributed abstract machine for Eden. In this paper we go a step further and present the imperative code generated for Eden expressions and how this code interact with the distributed RunTime System (R...
متن کاملCOORDINATING SOFTWARE EVOLUTION VIA TWO-TIER PROGRAMMINGi
Historically, progress in the science of programming has primarily been reflected by the evolution of programming languages. We propose that the next step in this evolution is a more comprehensive kind of programs: Rather than being defined exclusively in an extensional terms, we advocate a distinct programming paradigm where a program is specified through two tightly integrated representations...
متن کاملDealing with Large Bananas
Many problems call for a mixture of generic and speci c programming techniques. We propose a polytypic programming approach based on generalised (monadic) folds where a separation is made between basic fold algebras that model generic behaviour and updates on these algebras that model speci c behaviour. We identify particular basic algebras as well as some algebra combinators, and we show how t...
متن کاملMathematical Programming Models for Solving Unequal-Sized Facilities Layout Problems - a Generic Search Method
This paper present unequal-sized facilities layout solutions generated by a genetic search program named LADEGA (Layout Design using a Genetic Algorithm). The generalized quadratic assignment problem requiring pre-determined distance and material flow matrices as the input data and the continuous plane model employing a dynamic distance measure and a material flow matrix are discussed. Computa...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2007